package com.operator.Activitys.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.facebook.drawee.view.SimpleDraweeView;
import com.operator.Activitys.R;
import com.operator.Activitys.adapter.base.BaseRecyclerViewAdapter;
import com.operator.Activitys.bean.Supply;
import com.operator.Activitys.utils.FrescoUtils;
import com.operator.Activitys.view.ninegrid.NineGridTestLayout;
import com.zhy.autolayout.utils.AutoUtils;

import java.util.ArrayList;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

/**
 * 项目名称：金泽云 手机app
 * 类描述：通讯供求 数据适配器
 * 创建人：张飞祥
 * 创建时间：2018/5/25 14:51
 * 修改人：张飞祥
 * 修改时间：2018/5/25 14:51
 * 修改备注：
 */
public abstract class SupplyAdapter extends BaseRecyclerViewAdapter {


    //上下文
    private Context mContext;
    //删除按钮显示 flag
    private boolean delFlag;
    //数据集合
    private List<Supply> mList;

    public SupplyAdapter(Context mContext,boolean delFlag, List<Supply> mList) {
        super(mContext, mList);
        this.mContext = mContext;
        this.delFlag = delFlag;
        this.mList = mList;
    }

    @Override
    protected int getLayoutItemResId() {
        return R.layout.item_supply;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
        if (viewHolder instanceof SupplyViewHolder) {

            //TODO 获取通讯供求 信息 viewHolder
            final SupplyViewHolder holder = (SupplyViewHolder) viewHolder;
            //TODO  将数据保存在itemView的Tag中，以便点击时进行获取
            holder.itemView.setTag(position);
            //TODO  获取数据源 第 i 个 实体数据
            Supply supply = mList.get(position);

            /**
             * 设置数据源
             */

            //设置头像
            FrescoUtils.loadImage(supply.getStoreInfoImgSrc(), holder.svItemSupplyIcon);
            //设置 店铺名称
            holder.tvItemSupplyName.setText(supply.getStoreName());
            //设置 创建时间
            holder.tvItemSupplyTime.setText(supply.getCreateTime());
            //设置 信息内容
            holder.tvItemSupplyContent.setText(supply.getContent());
            //判断是否显示删除按钮  true：显示
            if (delFlag){
                holder.ivItemSupplyDelete.setVisibility(View.VISIBLE);
            }

            //TODO 设置 供求信息 图片

            //图片 Url 地址
            List<String> mHttpUrls = new ArrayList<>();
            mHttpUrls.add(supply.getImgSrc1());
            mHttpUrls.add(supply.getImgSrc2());
            mHttpUrls.add(supply.getImgSrc3());
            mHttpUrls.add(supply.getImgSrc4());
            mHttpUrls.add(supply.getImgSrc5());
            mHttpUrls.add(supply.getImgSrc6());

            //将图片 添加到 集合中
            //图片 Url 地址
            List<String> urls = new ArrayList<>();

            for (String url : mHttpUrls) {
                if (!"".equals(url))
                    urls.add(url);
            }

            holder.layoutItemSupply.setUrlList(urls);

            /**
             * 按钮删除事件
             */
            holder.ivItemSupplyDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    setItemDelOnClick(position);
                }
            });
        }

    }

    @Override
    public RecyclerView.ViewHolder getViewHolder(View view) {
        return new SupplyViewHolder(view);
    }

    //外部 item 长按事件
    public abstract void setItemDelOnClick(int position);


    /**
     * ViewHolder
     */
    public class SupplyViewHolder extends RecyclerView.ViewHolder {

        //店铺头像
        @Bind(R.id.sv_item_supply_icon)
        SimpleDraweeView svItemSupplyIcon;
        //店铺名称
        @Bind(R.id.tv_item_supply_name)
        TextView tvItemSupplyName;
        //店铺时间
        @Bind(R.id.tv_item_supply_time)
        TextView tvItemSupplyTime;
        //供求内容
        @Bind(R.id.tv_item_supply_content)
        TextView tvItemSupplyContent;
        //供求图片
        @Bind(R.id.layout_item_supply)
        NineGridTestLayout layoutItemSupply;
        //删除按钮
        @Bind(R.id.iv_item_supply_delete)
        ImageView ivItemSupplyDelete;

        public SupplyViewHolder(View itemView) {
            super(itemView);
            //绑定控件
            ButterKnife.bind(this, itemView);
            //item 适配
            AutoUtils.autoSize(itemView);
        }
    }

}
